package credits;

import java.io.Serializable;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import users.Usuario;
import java.util.Date;


/**
 * The persistent class for the comprobante database table.
 * 
 */
@Entity
@Table(name="comprobante")
@NamedQueries({
    @NamedQuery(name = "Comprobante.findAll", query = "SELECT c FROM Comprobante c"),
    @NamedQuery(name = "Comprobante.findByIdComprobante", query = "SELECT c FROM Comprobante c WHERE c.idComprobante = :idComprobante"),
    @NamedQuery(name = "Comprobante.findByFecha", query = "SELECT c FROM Comprobante c WHERE c.fecha = :fecha"),
    @NamedQuery(name = "Comprobante.findByMoneda", query = "SELECT c FROM Comprobante c WHERE c.moneda = :moneda"),
    @NamedQuery(name = "Comprobante.findByFechaCobro", query = "SELECT c FROM Comprobante c WHERE c.fechaCobro = :fechaCobro"),
    @NamedQuery(name = "Comprobante.findByEstado", query = "SELECT c FROM Comprobante c WHERE c.estado = :estado")})

public class Comprobante implements Serializable {
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Basic(optional = false)
	@NotNull
	@Column(name = "idComprobante")
	private Integer idComprobante;
	@Basic(optional = false)
	@NotNull
	@Size(min = 1, max = 45)
	@Column(name = "estado")
	private String estado;
	@NotNull
    @Column(name = "fecha")
    @Temporal(TemporalType.DATE)
    private Date fecha;
	@Basic(optional = false)
    @NotNull
    @Column(name = "fechaCobro")
    @Temporal(TemporalType.DATE)
    private Date fechaCobro;
	@Basic(optional = false)
    @NotNull
    @Column(name = "importeTotal")
    private double importeTotal;
	@Basic(optional = false)
    @NotNull
    @Column(name = "moneda")
    private boolean moneda;
	@Basic(optional = false)
    @NotNull
    @Column(name = "netoCheque")
    private double netoCheque;
	@Basic(optional = false)
    @NotNull
    @Column(name = "pagos")
    private int pagos;
	@Basic(optional = false)
    @NotNull
    @Column(name = "retencionIva")
    private double retencionIva;
	@Basic(optional = false)
    @NotNull
    @Column(name = "vouchers")
    private int vouchers;
	private Tarjeta tarjeta;
	private Usuario usuario;

    public Comprobante() {
    }

    public Comprobante(Integer idComprobante, Date fecha, int pagos, int vouchers, boolean moneda, double importeTotal, double retencionIva, double netoCheque, Date fechaCobro, String estado) {
        this.idComprobante = idComprobante;
        this.fecha = fecha;
        this.pagos = pagos;
        this.vouchers = vouchers;
        this.moneda = moneda;
        this.importeTotal = importeTotal;
        this.retencionIva = retencionIva;
        this.netoCheque = netoCheque;
        this.fechaCobro = fechaCobro;
        this.estado = estado;
    }

	public Integer getIdComprobante() {
		return this.idComprobante;
	}

	public void setIdComprobante(Integer idComprobante) {
		this.idComprobante = idComprobante;
	}


	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}


	public Date getFecha() {
		return this.fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}


	public Date getFechaCobro() {
		return this.fechaCobro;
	}

	public void setFechaCobro(Date fechaCobro) {
		this.fechaCobro = fechaCobro;
	}


	public double getImporteTotal() {
		return this.importeTotal;
	}

	public void setImporteTotal(double importeTotal) {
		this.importeTotal = importeTotal;
	}


	public boolean getMoneda() {
		return this.moneda;
	}

	public void setMoneda(boolean moneda) {
		this.moneda = moneda;
	}


	public double getNetoCheque() {
		return this.netoCheque;
	}

	public void setNetoCheque(double netoCheque) {
		this.netoCheque = netoCheque;
	}


	public int getPagos() {
		return this.pagos;
	}

	public void setPagos(int pagos) {
		this.pagos = pagos;
	}


	public double getRetencionIva() {
		return this.retencionIva;
	}

	public void setRetencionIva(double retencionIva) {
		this.retencionIva = retencionIva;
	}


	public int getVouchers() {
		return this.vouchers;
	}

	public void setVouchers(int vouchers) {
		this.vouchers = vouchers;
	}


	//uni-directional many-to-one association to Tarjeta
    @ManyToOne
	@JoinColumn(name="idTarjeta")
	public Tarjeta getTarjeta() {
		return this.tarjeta;
	}

	public void setTarjeta(Tarjeta tarjeta) {
		this.tarjeta = tarjeta;
	}
	

	//uni-directional many-to-one association to Usuario
    @ManyToOne
	@JoinColumn(name="idUsuario")
	public Usuario getUsuario() {
		return this.usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
}